

#pragma once 

#ifndef __GC_ALGV_H__
#define __GC_ALGV_H__

#include <mutex>
#include <string>
#include "json.hpp"
#include "httplib.h"

#include "types.h"

using namespace std;

extern GC_APP_CONFIG gc_app_config;
extern std::string app_start_time;

namespace gc
{
    class GCAlgV
    {
        public:
            GCAlgV();
	        virtual ~GCAlgV(void);
            
            void SyncCameraConfig(const std::string camera_key, const char* img_path = nullptr);
            void GetAppConfig(const char* area);
        
        private:
            httplib::Client *m_client_camera;
            httplib::Client *m_client_app_config;
            std::mutex m_mutex;
            // std::mutex m_base_config_mutex;
    };
}

#endif